package com.winshare.saleAssistant.mapper;

import com.winshare.saleAssistant.domain.entity.ProductModuleDO;
import com.winshare.saleAssistant.domain.query.ProductModuleQuery;
import com.winshare.saleAssistant.domain.dto.req.*;
import com.winshare.saleAssistant.domain.dto.resp.ProductModuleRespDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ProductModuleMapStruct {

    ProductModuleMapStruct INSTANCE = Mappers.getMapper(ProductModuleMapStruct.class);

    ProductModuleDO fromProductModuleCreateDTO(ProductModuleCreateDTO productModuleCreateDTO);

    ProductModuleDO fromProductModuleUpdateDTO(ProductModuleUpdateDTO productModuleUpdateDTO);

    ProductModuleDO fromProductModuleIdDTO(ProductModuleIdDTO productModuleIdDTO);

    ProductModuleDO fromProductModuleSortDTO(ProductModuleSortDTO productModuleSortDTO);

    ProductModuleQuery fromProductModuleQueryDTO(ProductModuleQueryDTO productModuleQueryDTO);

    List<ProductModuleRespDTO> fromProductModuleDOList(List<ProductModuleDO> productModuleDOList);

    ProductModuleRespDTO fromProductModuleDO(ProductModuleDO productModuleDO);

    ProductModuleDO fromBaseIdDTO(BaseIdDTO baseIdDTO);
}
